package com.lz.dubbo.producer.common.exception;

/**
 * @version 0.1  2013-2-21
 * @author mohb
 *
 */
public class NotFundCalcException extends RuntimeException {

    private static final long serialVersionUID = -8919434920779157196L;

    /**
     * 错误码。
     */
    private String errorCode;

    /**
     * 用于前台显示的信息。
     * 该值按规则自动生成。
     */
    private String showMessage;

    public NotFundCalcException(Throwable e){
        super(e);
    }

    /**
     * 以异常信息创建异常。
     * @param message 异常信息在异常被打印时输出到日志以供查看。
     */
    public NotFundCalcException(String message){
        super(message);
    }

    /**
     * 以异常码及错误信息创建异常。<br/>
     * 通过该构造方法创建异常以实现前台错误信息的国际化。<br/>
     * 说明：<br/>
     * 错误信息：将异常码与对应错误信息定义于国际化资源文件；<br/>
     * 创建异常：在业务逻辑中需要异常的位置以错误码创建此异常并抛出；<br/>
     * 捕获异常：控制层捕获此异常并调用getShowMessage()获取国际化的错误显示信息以用于在前端展示。<br/>
     * 错误信息则只用于后台显示以跟踪查明错误原因，在错误码为空的情况下会作为错误显示信息。
     * @param errorCode 错误码 错误码对应资源文件中的信息用于前台显示。
     * @param message 错误信息 用于监控及日志显示的信息。
     */
    public NotFundCalcException(String errorCode, String message) {
        super(message);
        this.errorCode = errorCode;
    }

    /* (non-Javadoc)
     * @see com.lz.IR.exception.IRBaseException#IRBaseException(java.lang.String)
     */
    public NotFundCalcException(String errorCode, Throwable cause) {
        super(errorCode, cause);
        this.errorCode = errorCode;
    }

    /* (non-Javadoc)
     * @see com.lz.IR.exception.IRBaseException#IRBaseException(java.lang.String, java.lang.String)
     */
    public NotFundCalcException(String errorCode, String message, Throwable cause) {
        super(message, cause);
        this.errorCode = errorCode;
    }

    public String getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    }
}
